Internet usage patterns have changed markedly since the advent of high speed data connectivity. Data creation, dissemination and access drive most traffic on the Internet, causing a greater focus on acquiring data as needed regardless of the source of the data. Such evolving usage models have put significant pressure on the prevalent internet infrastructure, much of which was originally designed around a host-centric model. For example, in the present model, to acquire data, consumer systems need to be aware of the source of the desired data. Such data may additionally be difficult to authenticate, as current models do not provide built in mechanisms for verifying data authenticity, which may, in turn, lead to issues such as spamming or phishing.
To address some of these problems, an Information Centric Networking (ICN) approach was developed to re-design the current Internet to move away from the “host-centric” model to a “data-centric” model. ICN seeks to make data the primary design target, rather than its location.
ICN approaches, then, seek to remove many of the issues in the current Internet, particularly in the areas of data delivery, security and mobility. Most, if not all, ICN approaches operate on a pull model, driven by a data receiver. These approaches may seek to define security and mobility as core features of the network, rather than have them as overlays.
However, existing ICN models may be inefficient in the area of bi-directional real-time communications. In classical ICN approaches, each participant sends a request message for any data that they require. The network or the targeted entity then sends back the requested data as a response. However, for real-time bidirectional multi-media communications, this pull-based model introduces significant overheads due to increased traffic and processing of a much larger number of packets at the network elements.
Real Time Communication (RTC) applications, for example, a voice-over-IP (VoIP) call, may require a continuous stream of voice packets, to be exchanged between participating parties for an extended period of time. Delivery of these data may have real-time constraints. Failure to meet these constraints can lead to severe degradation of call quality. In standard VoIP implementations, both parties may stream voice packets to the other side as soon as they receive a signaling confirmation that the other end is ready to receive media. Thus, media exchange occurs in a push model, in contrast to the pull model in ICN approaches.
Using Pull type architecture is problematic for real-time applications due to performance and processing overheads. Some adaptations exist, such as methods for pipelining, where requests are sent in advance to availability of data, thereby reducing latencies that may occur if the parties to the call had to wait for requests from the other end before they can send media. Even with such changes, however, transmitting bi-directional real-time traffic has significant overheads.
Specifically, existing approaches may impose significant network overhead. In an RTC application, like a VoIP conference call, all involved parties send as well as receive data. In VoIP this may be achieved by creating one outgoing real-time transport protocol (“rtp”) stream and one incoming rtp stream for each user. In an ICN model, each user may need to send a request for the other parties' data, and send data in response to the other parties' request. Consequently, every data packet to be sent needs a corresponding request packet. In a n-user conference, traditional VoIP will require setting up 2*n rtp streams, while a similar implementation in an existing ICN model may require 4*n streams, effectively reducing available bandwidth to half.
Existing ICN approaches may impose a processing overhead. Most normal processing operations involving the request and data packets in existing ICN models are not necessary for RTC applications. Cache lookups while processing requests and cache updates while forwarding data packets, for example, may be superfluous given that data is transient in real-time communications. Also, the requirement to have a request precede the receipt of any content may result in increased packet processing overhead as they have to process double the number of packets.
Accordingly, there is a need for a data centric approach to bi-directional communications that addresses the above problems.